home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / unixSyscall / RCS / kill.c,v < prev    next >
Text File  |  1989-04-19  |  2KB  |  111 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.2
  10. date     89.04.19.17.07.12;  author ouster;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     88.06.19.14.31.35;  author ouster;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @@
  22.  
  23.  
  24. 1.2
  25. log
  26. @Wasn't sending "kill(0, X)" to whole group, only to calling process.
  27. @
  28. text
  29. @/* 
  30.  * kill.c --
  31.  *
  32.  *    Procedure to map from Unix kill system call to Sprite Sig_Send call.
  33.  *    Note: many Unix signals are not supported under Sprite.
  34.  *
  35.  * Copyright 1986 Regents of the University of California
  36.  * All rights reserved.
  37.  */
  38.  
  39. #ifndef lint
  40. static char rcsid[] = "$Header: kill.c,v 1.1 88/06/19 14:31:35 ouster Exp $ SPRITE (Berkeley)";
  41. #endif not lint
  42.  
  43. #include "sprite.h"
  44. #include "sig.h"
  45.  
  46. #include "compatInt.h"
  47. #include "proc.h"
  48. #include <signal.h>
  49. #include <errno.h>
  50.  
  51.  
  52. /*
  53.  *----------------------------------------------------------------------
  54.  *
  55.  * kill --
  56.  *
  57.  *    Procedure to map from Unix kill system call to Sprite 
  58.  *    Sig_Send.
  59.  *
  60.  * Results:
  61.  *    UNIX_ERROR is returned upon error, with the actual error code
  62.  *    stored in errno.
  63.  *
  64.  * Side effects:
  65.  *    None.
  66.  *
  67.  *----------------------------------------------------------------------
  68.  */
  69.  
  70. int
  71. kill(pid, sig)
  72.     int pid;
  73.     int sig;
  74. {
  75.     ReturnStatus status;
  76.     int         spriteSignal;
  77.  
  78.     if (pid == 0) {
  79.     return killpg(getpgrp(0), sig);
  80.     }
  81.     status = Compat_UnixSignalToSprite(sig, &spriteSignal);
  82.     if (status == FAILURE || (spriteSignal == NULL && sig != 0)) {
  83.     errno = EINVAL;
  84.     return(UNIX_ERROR);
  85.     }
  86.     status = Sig_Send(spriteSignal, pid, FALSE);
  87.     if (status != SUCCESS) {
  88.     errno = Compat_MapCode(status);
  89.     return(UNIX_ERROR);    
  90.     } else {
  91.     return(UNIX_SUCCESS);
  92.     }
  93. }
  94. @
  95.  
  96.  
  97. 1.1
  98. log
  99. @Initial revision
  100. @
  101. text
  102. @d12 1
  103. a12 1
  104. static char rcsid[] = "$Header: kill.c,v 1.2 88/03/22 19:42:15 deboor Exp $ SPRITE (Berkeley)";
  105. d50 3
  106. a56 3
  107.     }
  108.     if (pid == 0) {
  109.     pid = PROC_MY_PID;
  110. @
  111.